package com.Demo;

public class TestSychronized {
    public static void main(String[] args) {
        Serivce service = new Serivce();
        RunThread1 rt1 = new RunThread1(service);
        rt1.start();
        RunThread1 rt2 = new RunThread1(service);
        rt2.start();
    }
}

/**
 * 业务类
 */
class Serivce {
    /**
     * 业务方法
     */
    public void doSomething() {
        for (int i = 1; i <= 10; i++) {
            System.out.println(Thread.currentThread().getName() + " print=" +
                    i);
        }
    }
}

/**
 * 运行结果：这个没用多线程的安全问题，原因在于是使用的局部变量，没用共享，打印的顺序，随
 * 机。
 * 场景二
 * 两个线程无锁的情况下，以及业务方法doSomething()方法里面用休眠的情况下运行状况。
 * 线程类
 */
class RunThread1 extends Thread {
    private Serivce service;

    public RunThread1(Serivce service) {
        this.service = service;
    }

    public void run() {
        this.service.doSomething();
    }
}